//当购物车没信息的时候 用forEach会报错
// pages/shop/shop.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    address:"",
    car:[],
    flag:false,
    RMB:0,
    number:0
  },
 
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function(){
    // 当缓存里面有数据的时候 全选按钮选中
    if(!wx.getStorageSync('car').length==0){
      this.setData({
         flag:true
      })
    }
    this.setData({
      car:wx.getStorageSync('car')
    }) 

    // 统计金额
    this.rmbandnumber()
  },

  // 处理收获地址
  hanleadress(){
    // 
    wx.getSetting({
      withSubscriptions: true,
      success:(res)=>{
        console.log(res)
        if(res.authSetting["scope.address"] ===false){
          // 重新打开权限
          wx.openSetting({
            success (res) {
              console.log(res.authSetting)
            }
          })
        }else{
          wx.chooseAddress({
            success: (res) => {
              console.log(res)
              var obj={
                "userName":res.userName,
               "telNumber": res.telNumber,
               "provinceName":res.provinceName,
               "cityName":res.cityName,
               "countyName": res.countyName,
               "detailInfo": res.detailInfo
              }
              this.setData({
                address:obj
              })
            },
            fail: (res) => {},
            complete: (res) => {},
          })
      
        }
      }
    })
  },

  //选中
  hanldechecked(event){
    const index = this.data.car.findIndex(v=>v.id===event.currentTarget.dataset.id)
    this.data.car[index].checked=! this.data.car[index].checked
    wx.setStorageSync('car', this.data.car)
    // 遍历缓存的数据 要是有一个checked属性值为false  取消全选 flag 为false
    var allchecked=this.data.car.some(v=>v.checked===false)
    if(allchecked){
      this.setData({
        flag:false
      })
    }else{
      this.setData({
        flag:true
      })
    }
    // 把选中的商品 
    var price =0
    var num =0
    if(this.data.car.length!=0){
    this.data.car.forEach(v=>{
      if(v.checked){
        // 当选中的时候 把数量和金额处理
         price+=v.price*v.num
         num+=v.num
      }
    })
  }
    this.setData({
      RMB:price,
      number:num
    })
    
  
  },

  //全选框的点击  也要改变data中的number和RMB
  hanleallcheck(){
     this.data.flag= !this.data.flag
     if(this.data.car!=0){
     this.data.car.forEach(v=>{v.checked=this.data.flag})
     wx.setStorageSync("car",this.data.car)
     this.setData({
       car:wx.getStorageSync("car")
     })
    //  当全部不选中的时候  数量和金额都为0
     if(!this.data.flag){
        this.setData({
          RMB:0,
          number:0
        })
     }else{
     this.rmbandnumber()
     }
    }
  },

  //处理金额和数量的方法
  rmbandnumber(){
    var price =0
    var num =0  
   if(this.data.car!=0){
   this.data.car.forEach((v)=>{
    price+=v.price*v.num
    num+=v.num
   })
  }
   this.setData({
     RMB:price,
     number:num
   })
  },
  
  // 处理+ 和-号的点击事件
  handlenumber(event){
    var index=this.data.car.findIndex(v=>v.id===event.currentTarget.dataset.item_id)
    this.data.car[index].num+=event.currentTarget.dataset.ope
    // 当数量为0的时候 移除该商品
    if(this.data.car[index].num===0){
      this.data.car.splice(index,1)
      wx.showToast({
        title: '删除成功',
        icon: 'success',
        duration: 2000
      })
    }
    // 当缓存中没有数据的时候 全选按钮不选中
    if(this.data.car.length==0){
      this.setData({
        flag:false
      })
    }
    wx.setStorageSync("car",this.data.car)
    this.setData({
      car:wx.getStorageSync('car')
    })
    this.rmbandnumber()
  
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})